// LRU 缓存类
// 实现一个 Least Recently Used (最近最少使用) 缓存
// 当缓存达到容量限制时，移除最近最少使用的项

class LRUCache {
  constructor(capacity) {
    // TODO: 初始化缓存容量和数据结构
  }

  // 获取缓存中的值
  get(key) {
    // TODO: 实现获取逻辑
    // 如果 key 存在，返回对应的 value 并将该 key 标记为最近使用
    // 如果 key 不存在，返回 -1
  }

  // 设置缓存中的键值对
  put(key, value) {
    // TODO: 实现设置逻辑
    // 如果 key 已存在，更新其 value 并标记为最近使用
    // 如果 key 不存在：
    //   - 如果缓存未满，直接添加并标记为最近使用
    //   - 如果缓存已满，移除最近最少使用的项，然后添加新项
  }

  // 获取当前缓存大小
  size() {
    // TODO: 返回当前缓存中的项数
  }

  // 清空缓存
  clear() {
    // TODO: 清空所有缓存项
  }
}

module.exports = LRUCache
